package tech.aistar.corejava.day05;

/**
 * @author success
 * @version 1.0
 * @description:本类用来演示:带参构造的赋值
 * @date 2019/7/19 0019
 */
public class StudentTest {
    public static void main(String[] args) {
        //带参构造的作用 -
        //1. 创建对象
        //2. 对属性进行赋值.

        //int a = 10;//只能保存一个数据
        //int[] arr = new int[]{1,2,3};//保存多个数据,但是只能是同一种类型.

        //对象 - 想象成特殊的"数组" - 可以存储多个不同类型的

        //通过new关键字在JVM的堆空间中申请区域,分配空间,用来保存new Student(10,"tom") - 对象
        //然后这个对象在堆空间中的内存地址赋值给了引用s,保存在栈
        //所以s实际上是引用 - 保存的对象在堆空间中的内存地址

        //面向对象的三大特征之一 - 封装性
        Student s = new Student(10,"tom");

        s = new Student(30,"success");

        Student s2 = new Student(10,"tom");

       // System.out.println(s.id);//检测构造是否赋值成功!!!

       // System.out.println(s.sno);

        System.out.println(s);//tech.aistar.corejava.day05.Student@28d93b30
        System.out.println(s == s2);//false == 比较的就是内存地址
        System.out.println(s.equals(s2));//false

//        public boolean equals(Object obj) {
//            return (this == obj);
//        }
    }
}
